A number of techniques for controlling errors in communication transmissions exist. One such technique is an automatic-repeat-request (ARQ) scheme. The receiver attempts to detect errors according to an error-detection mechanism such as an error-detection code. A data message may be divided into a number of frames. If no errors are detected in a frame of data, the receiver assumes that the frame is error-free, accepts the frame, and via a return channel, may inform the transmitter that the frame was successfully received by identifying the frame by number. A notification of successful reception is often referred to as an ACK, or acknowledgment. If errors are detected in the frame of data, the receiver, via the return channel, may inform the transmitter and request retransmission of the frame by number. This request for retransmission is often referred to as a NACK, or negative acknowledgment. This process of transmission, informing, and retransmission continues until an entire message is successfully received.
In a broadcast data system, a single transmission may target numerous receiving communication units, sometimes thousands of units. Because each of the units must send either an ACK or a NACK for each data frame, the return channel becomes inundated with thousands of messages, consuming valuable time on the communication channel. If use of the return channel is not coordinated, many of these messages are likely to coincide at least partially, resulting in corrupted ACKs and NACKs, rendering the transmitter unable to distinguish which messages were received successfully and which ones were not. One method for returning ACKs and NACKs via a return channel in a coordinated manner is to designate a particular time interval for each unit to transmit an ACK/NACK. When there are numerous communication units, such a system is wasteful of the communication channel, and messages will take a very long time to be transmitted.
Accordingly, there is a need for an improved method of returning ACKs and NACKs in a broadcast data system utilizing an ARQ protocol.